home *** CD-ROM | disk | FTP | other *** search
-
- -- -----------------------------------------------------------------
- -- Init
- -- -----------------------------------------------------------------
- local function prog_init()
- initModels()
- sound_playMusic("music/rybky15.ogg")
- local pokus = getRestartCount()
-
-
- -- -------------------------------------------------------------
- local function prog_init_room()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- room.kec1 = random(5)
- repeat
- room.kec2 = random(5)
- until room.kec2 ~= room.kec1
- repeat
- room.kec3 = random(5)
- until room.kec3 ~= room.kec1 and room.kec3 ~= room.kec2
- repeat
- room.kec4 = random(5)
- until room.kec4 ~= room.kec1 and room.kec4 ~= room.kec2 and room.kec4 ~= room.kec3
- room.kecdel1 = random(300) + 300
- room.kecdel2 = random(1000) + 1000
- room.kecdel3 = random(3000) + 3000
- room.kecdel4 = random(10000) + 10000
- room.uvod = 0
- room.ohaku = 0
- room.ooku = 0
-
- return function()
- if no_dialog() and isReady(small) and isReady(big) then
- for pom1 = 1, 1 do
- if room.kecdel1 > 0 then
- room.kecdel1 = room.kecdel1 - 1
- end
- if room.kecdel2 > 0 then
- room.kecdel2 = room.kecdel2 - 1
- end
- if room.kecdel3 > 0 then
- room.kecdel3 = room.kecdel3 - 1
- end
- if room.kecdel4 > 0 then
- room.kecdel4 = room.kecdel4 - 1
- end
- end
- pom1 = -1
- if room.uvod == 0 then
- room.uvod = 1
- pom1 = random(4)
- adddel(10 + random(30))
- switch(pom1){
- [0] = function()
- addm(0, "vl-m-hara")
- end,
- [3] = function()
- addv(0, "vl-v-kaj1")
- end,
- default = function()
- addm(0, "vl-m-hara")
- addv(5 + random(10), "vl-v-kaj"..pom1)
- end,
- }
- pom1 = -1
- elseif room.ohaku == 0 and look_at(small, hakahak) and dist(small, hakahak) <= 2 and random(100) < 1 then
- room.ohaku = 1
- addm(20, "vl-m-hak")
- addv(random(10) + 5, "vl-v-lodni")
- planDialogSet(3, "vl-x-site", 301, hakahak, "cinnost")
- elseif room.kecdel1 == 0 then
- room.kecdel1 = -1
- pom1 = room.kec1
- elseif room.kecdel2 == 0 then
- room.kecdel2 = -1
- pom1 = room.kec2
- elseif room.kecdel3 == 0 then
- room.kecdel3 = -1
- pom1 = room.kec3
- elseif room.kecdel4 == 0 then
- room.kecdel4 = -1
- pom1 = room.kec4
- elseif room.ooku == 0 and dist(small, ocko) <= 3 and random(100) < 1 then
- room.ooku = 1
- addm(10, "vl-m-oko")
- if random(100) < 25 then
- addv(10, "vl-v-silha")
- end
- elseif room.ooku == 0 and dist(big, ocko) <= 4 and random(100) < 1 then
- room.ooku = 1
- addv(10, "vl-v-silha")
- end
- if pom1 >= 0 then
- if pom1 == 4 then
- pom2 = 102
- else
- pom2 = 101
- end
- planDialogSet(30, "vl-leb-kecy"..pom1, pom2, lebkic, "cinnost")
- end
- end
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_diamant3()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- diamant3.faze = 0
-
- return function()
- switch(diamant3.faze){
- [0] = function()
- if random(100) < 5 then
- diamant3.faze = diamant3.faze + 1
- end
- end,
- [7] = function()
- diamant3.faze = 0
- end,
- default = function()
- if isIn(diamant3.faze, {1, 2, 3}) then
- diamant3.afaze = diamant3.afaze + 1
- diamant3.faze = diamant3.faze + 1
- elseif isIn(diamant3.faze, {4, 5, 6}) then
- diamant3.afaze = diamant3.afaze - 1
- diamant3.faze = diamant3.faze + 1
- end
- end,
- }
- diamant3:updateAnim()
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_ocko()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- ocko.cinnost = 0
-
- return function()
- if ocko.cinnost == 0 then
- if random(100) < 10 then
- local rand8 = random(8)
- switch(rand8){
- [3] = function()
- ocko.citac = random(3) + 2
- ocko.cinnost = 2
- ocko.faze = random(2) * 2
- end,
- [7] = function()
- ocko.citac = random(10) + 2
- ocko.cinnost = 5
- end,
- default = function()
- if 0 <= rand8 and rand8 <= 2 then
- ocko.citac = random(5) + 5
- ocko.cinnost = 1
- ocko.faze = random(2) * 2
- elseif 4 <= rand8 and rand8 <= 6 then
- ocko.citac = random(12) + 12
- ocko.cinnost = 3 + random(2)
- end
- end
- }
- end
- elseif ocko.cinnost == 1 or ocko.cinnost == 2 then
- switch(ocko.faze){
- [0] = function()
- if ocko.cinnost == 1 then
- ocko.afaze = 1
- else
- ocko.afaze = 3
- end
- if random(100) < 20 then
- ocko.faze = ocko.faze + 1
- end
- end,
- [1] = function()
- ocko.afaze = 0
- ocko.faze = ocko.faze + 1
- end,
- [2] = function()
- if ocko.cinnost == 1 then
- ocko.afaze = 2
- else
- ocko.afaze = 4
- end
- if random(100) < 20 then
- ocko.faze = ocko.faze + 1
- end
- end,
- [3] = function()
- ocko.afaze = 0
- ocko.citac = ocko.citac - 1
- if ocko.citac == 0 then
- ocko.cinnost = 0
- else
- ocko.faze = 0
- end
- end,
- }
- elseif isIn(ocko.cinnost, {3, 4, 5}) then
- switch(ocko.cinnost){
- [3] = function()
- switch(ocko.afaze){
- [0] = function()
- ocko.afaze = random(4) + 1
- end,
- [1] = function()
- ocko.afaze = 3
- end,
- [2] = function()
- ocko.afaze = 4
- end,
- [3] = function()
- ocko.afaze = 2
- end,
- [4] = function()
- ocko.afaze = 1
- end,
- }
- end,
- [4] = function()
- switch(ocko.afaze){
- [0] = function()
- ocko.afaze = random(4) + 1
- end,
- [1] = function()
- ocko.afaze = 4
- end,
- [2] = function()
- ocko.afaze = 3
- end,
- [3] = function()
- ocko.afaze = 1
- end,
- [4] = function()
- ocko.afaze = 2
- end,
- }
- end,
- [5] = function()
- if random(100) < 40 then
- ocko.afaze = random(5)
- end
- end,
- }
- ocko.citac = ocko.citac - 1
- if ocko.citac == 0 then
- ocko.cinnost = 0
- ocko.afaze = 0
- end
- end
- ocko:updateAnim()
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_lebkic()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- lebkic.cinnost = 0
-
- return function()
- if odd(game_getCycles()) then
- switch(lebkic.cinnost){
- [0] = function()
- if random(100) < 3 then
- lebkic.afaze = 1
- else
- lebkic.afaze = 0
- end
- end,
- [101] = function()
- lebkic.afaze = random(3)
- if lebkic.afaze > 0 then
- lebkic.afaze = lebkic.afaze + 1
- end
- end,
- [102] = function()
- lebkic.afaze = random(4)
- end,
- }
- end
- lebkic:updateAnim()
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_diamant1()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- diamant1.faze = 0
-
- return function()
- switch(diamant1.faze){
- [0] = function()
- if random(100) < 5 then
- diamant1.faze = diamant1.faze + 1
- end
- end,
- [7] = function()
- diamant1.faze = 0
- end,
- default = function()
- if isIn(diamant1.faze, {1, 2, 3}) then
- diamant1.afaze = diamant1.afaze + 1
- diamant1.faze = diamant1.faze + 1
- elseif isIn(diamant1.faze, {4, 5, 6}) then
- diamant1.afaze = diamant1.afaze - 1
- diamant1.faze = diamant1.faze + 1
- end
- end,
- }
- diamant1:updateAnim()
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_hakahak()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- hakahak.cinnost = 0
-
- return function()
- switch(hakahak.cinnost){
- [0] = function()
- hakahak.afaze = 0
- end,
- [301] = function()
- if hakahak.afaze == 0 or hakahak.afaze == 2 then
- hakahak.afaze = 1
- else
- hakahak.afaze = random(2) * 2
- end
- end,
- }
- hakahak:updateAnim()
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_diamantv()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- diamantv.faze = 0
-
- return function()
- switch(diamantv.faze){
- [0] = function()
- if random(100) < 10 then
- if random(2) == 0 then
- diamantv.faze = 1
- else
- diamantv.faze = 11
- end
- end
- end,
- [7] = function()
- diamantv.faze = 0
- end,
- [12] = function()
- diamantv.afaze = 5
- diamantv.faze = diamantv.faze + 1
- end,
- [14] = function()
- diamantv.afaze = 0
- diamantv.faze = 0
- end,
- default = function()
- if isIn(diamantv.faze, {1, 2, 3}) then
- diamantv.afaze = diamantv.afaze + 1
- diamantv.faze = diamantv.faze + 1
- elseif isIn(diamantv.faze, {4, 5, 6}) then
- diamantv.afaze = diamantv.afaze - 1
- diamantv.faze = diamantv.faze + 1
- elseif isIn(diamantv.faze, {11, 13}) then
- diamantv.afaze = 4
- diamantv.faze = diamantv.faze + 1
- end
- end,
- }
- diamantv:updateAnim()
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_diamant2()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- diamant2.faze = 0
-
- return function()
- switch(diamant2.faze){
- [0] = function()
- if random(100) < 5 then
- diamant2.faze = diamant2.faze + 1
- end
- end,
- [7] = function()
- diamant2.faze = 0
- end,
- default = function()
- if isIn(diamant2.faze, {1, 2, 3}) then
- diamant2.afaze = diamant2.afaze + 1
- diamant2.faze = diamant2.faze + 1
- elseif isIn(diamant2.faze, {4, 5, 6}) then
- diamant2.afaze = diamant2.afaze - 1
- diamant2.faze = diamant2.faze + 1
- end
- end,
- }
- diamant2:updateAnim()
- end
- end
-
- -- --------------------
- local update_table = {}
- local subinit
- subinit = prog_init_room()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_diamant3()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_ocko()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_lebkic()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_diamant1()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_hakahak()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_diamantv()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_diamant2()
- if subinit then
- table.insert(update_table, subinit)
- end
- return update_table
- end
- local update_table = prog_init()
-
-
- -- -----------------------------------------------------------------
- -- Update
- -- -----------------------------------------------------------------
- function prog_update()
- for key, subupdate in pairs(update_table) do
- subupdate()
- end
- end
-
-
-